home *** CD-ROM | disk | FTP | other *** search
/ Die Speccy' 97 / Die Speccy' 97.iso / amiga_system / the_aminet / comm / cnet / yachtzee.lha / Yacht-Zee < prev    next >
Text File  |  1995-10-07  |  24KB  |  376 lines

  1. /**************************************************************************\
  2.                $VER: Yacht-Zee, v1.1 (7-Oct-95) by Dotoran!
  3. \**************************************************************************/
  4. options results ; signal on SYNTAX ; signal on ERROR ; signal on IOERR
  5. tr=transmit ; se=sendstring ; gc=getchar ; gu=getuser ; gs=getscratch
  6. qu=query ; changewhere 'Yacht-Zee v1.1!' ; gu 1 ; handle=result
  7.  
  8. randice=1   /* Which RANDOM Routine? (0=Normal, 1=More Random?)           */
  9.  
  10. gu 28 ; term=result ; a=random(,,time('s'))
  11.  
  12. if term<2 | term=3 then do ; tr 'f1n8' ; sp=copies(' ',10)
  13.     tr sp'c4***********************************************************'
  14.     tr sp'c4*                                                         *'
  15.     tr sp'c4*   c6You need cfIBMc6-cfANSI caColor ceGraphics c6to play cbYacht-Zeec6!   c4*'
  16.     tr sp'c4*                                                         *'
  17.     tr sp'c4***********************************************************'
  18.     tr sp sp sp'   c6<c9enterc6>i1' ; exit ; end
  19.  
  20. START:
  21.     dice='123456' ; throw.=1 ; throws.=3 ; players=1 ; play=1
  22.     sp='36H'||copies(' ',42) ; gu 1 ; player.1=result
  23.     do i=1 to 4 ; do j=1 to 13 ; gd.i.j=-1 ; end j ; end i
  24.     up.play=6 ; dn.play=7 ; cls ; call SCREEN ; call READHIGHS
  25.     se '36Hc6Do You cdNeed cbInstructionsc6? (cayc6/cbNc6)c9: '
  26.     gc ; a=result ; if a~='Y' then do ; tr 'cbNo.'sp ; signal PLAY ; end
  27.     tr 'caYes!' ; signal DOCS
  28.  
  29. PLAY:
  30.     if up.play=0 then do ; totU.play=0 ; do k=1 to 6 ; totU.play=totU.play+gd.play.k ; end k
  31.         tr '23Hc5'right(totU.play,3) ; bonus.play=0 ; if totU.play>=63 then do ; bonus.play=35 ; totU.play=totU.play+35 ; end
  32.         tr '23Hcd'right(bonus.play,3) ; up.play=-1 ; end
  33.     if dn.play=0 then do ; totD.play=0 ; do k=7 to 13 ; totD.play=totD.play+gd.play.k ; end k
  34.         tr '23Hc5'right(totD.play,3) ; dn.play=-1 ; end
  35.     if up.play=-1 & dn.play=-1 then signal DONE
  36.     tr '50Hc6-cb1c6- cd'left(player.play,20)
  37.     throw.=1 ; throws.play=3 ; call THROWDICE
  38. PLAY1:
  39.     se '50H'||right(sp,25)||'50Hce' ; gc ; a=result ; call CHECK
  40.     if c2d(a)=13 then a='T' ; if c2d(a)=27 then a='Q'
  41.     a=index('12345ABCDEFGHIJKLMTQV',a) ; if a=0 then signal PLAY1
  42.     if a=19 then do ; tr 'Throw Dice' ; signal THROW ; end
  43.     if a=20 then do ; tr 'Quit Game'  ; signal QUIT  ; end
  44.     if a=21 then do ; tr 'View Highs' ; signal HIGHS ; end
  45.     if a=1  then signal TOG1 ; if a=2  then signal TOG2
  46.     if a=3  then signal TOG3 ; if a=4  then signal TOG4
  47.     if a=5  then signal TOG5
  48.     if a=6  then do ; tr 'Aces' ; signal ACES ; end
  49.     if a=7  then do ; tr 'Twos' ; signal TWOS ; end
  50.     if a=8  then do ; tr 'Threes' ; signal THREES ; end
  51.     if a=9  then do ; tr 'Fours' ; signal FOURS ; end
  52.     if a=10 then do ; tr 'Fives' ; signal FIVES ; end
  53.     if a=11 then do ; tr 'Sixes' ; signal SIXES ; end
  54.     if a=12 then do ; tr '3 of a Kind' ; signal KIND3 ; end
  55.     if a=13 then do ; tr '4 of a Kind' ; signal KIND4 ; end
  56.     if a=14 then do ; tr 'Full House' ; signal FULL ; end
  57.     if a=15 then do ; tr 'Sm. Straight' ; signal SMSTRT ; end
  58.     if a=16 then do ; tr 'Lg. Straight' ; signal LGSTRT ; end
  59.     if a=17 then do ; tr 'cfYACHT-ZEE!' ; signal YACHT ; end
  60.     if a=18 then do ; tr 'Chance' ; signal CHANCE ; end
  61. THROW:
  62.     if throws.play=0 then do
  63.         tr '36Hc6You are c9OUT c6of cbTHROWSc6!w1'sp ; signal PLAY1 ; end
  64.     a=0 ; do i=1 to 5 ; a=a+throw.i ; end i ; if a=0 then do
  65.         tr '36Hc6I cdneed c6some caDICE c6to c9THROW c6first!w1'sp ; signal PLAY1 ; end
  66.     call THROWDICE ; signal PLAY1
  67. TOG1:
  68.     if throws.play=0 then do
  69.         tr '36Hc6You are c9OUT c6of cbTHROWSc6!w1'sp ; signal PLAY1 ; end
  70.     if throw.1=0 then do ; tr 'c9Throw8HTHROW' ; d=1 ; end
  71.     if throw.1=1 then do ; tr 'caKeep!8HKEEP!' ; d=0 ; end
  72.     throw.1=d ; signal PLAY1
  73. TOG2:
  74.     if throws.play=0 then do
  75.         tr '36Hc6You are c9OUT c6of cbTHROWSc6!w1'sp ; signal PLAY1 ; end
  76.     if throw.2=0 then do ; tr 'c9Throw6HTHROW' ; d=1 ; end
  77.     if throw.2=1 then do ; tr 'caKeep!6HKEEP!' ; d=0 ; end
  78.     throw.2=d ; signal PLAY1
  79. TOG3:
  80.     if throws.play=0 then do
  81.         tr '36Hc6You are c9OUT c6of cbTHROWSc6!w1'sp ; signal PLAY1 ; end
  82.     if throw.3=0 then do ; tr 'c9Throw4HTHROW' ; d=1 ; end
  83.     if throw.3=1 then do ; tr 'caKeep!4HKEEP!' ; d=0 ; end
  84.     throw.3=d ; signal PLAY1
  85. TOG4:
  86.     if throws.play=0 then do
  87.         tr '36Hc6You are c9OUT c6of cbTHROWSc6!w1'sp ; signal PLAY1 ; end
  88.     if throw.4=0 then do ; tr 'c9Throw2HTHROW' ; d=1 ; end
  89.     if throw.4=1 then do ; tr 'caKeep!2HKEEP!' ; d=0 ; end
  90.     throw.4=d ; signal PLAY1
  91. TOG5:
  92.     if throws.play=0 then do
  93.         tr '36Hc6You are c9OUT c6of cbTHROWSc6!w1'sp ; signal PLAY1 ; end
  94.     if throw.5=0 then do ; tr 'c9Throw0HTHROW' ; d=1 ; end
  95.     if throw.5=1 then do ; tr 'caKeep!0HKEEP!' ; d=0 ; end
  96.     throw.5=d ; signal PLAY1
  97. ACES:
  98.     if gd.play.1~=-1 then do
  99.         tr '36Hc6Your ceAces c6are c9already cbfilled c6in!w1'sp ; signal PLAY1 ; end
  100.     tot=0 ; do k=1 to 5 ; if dice.k=1 then tot=tot+1 ; end k
  101.     se '36Hc6Use cb"ca'||tot||'cb" c6for your ceAcesc6? (caYc6/cbnc6)c9: '
  102.     gc ; a=result ; if a='N' then do ; tr 'cbNo.'sp ; signal PLAY1 ; end
  103.     tr 'caYes'sp ; gd.play.1=tot ; tr 'ce3H'||right(tot,3)
  104.     up.play=up.play-1 ; signal PLAY
  105. TWOS:
  106.     if gd.play.2~=-1 then do
  107.         tr '36Hc6Your ceTwos c6are c9already cbfilled cdin!w1'sp ; signal PLAY1 ; end
  108.     tot=0 ; do k=1 to 5 ; if dice.k=2 then tot=tot+2 ; end k
  109.     se '36Hc6Use cb"ca'||tot||'cb" c6for your ceTwosc6? (caYc6/cbnc6)c9: '
  110.     gc ; a=result ; if a='N' then do ; tr 'cbNo.'sp ; signal PLAY1 ; end
  111.     tr 'caYes'sp ; gd.play.2=tot ; tr 'ce3H'||right(tot,3)
  112.     up.play=up.play-1 ; signal PLAY
  113. THREES:
  114.     if gd.play.3~=-1 then do
  115.         tr '36Hc6Your ceThrees c6are c9already cbfilled c6in!w1'sp ; signal PLAY1 ; end
  116.     tot=0 ; do k=1 to 5 ; if dice.k=3 then tot=tot+3 ; end k
  117.     se '36Hc6Use cb"ca'||tot||'cb" c6for your ceThreesc6? (caYc6/cbnc6)c9: '
  118.     gc ; a=result ; if a='N' then do ; tr 'cbNo.'sp ; signal PLAY1 ; end
  119.     tr 'caYes'sp ; gd.play.3=tot ; tr 'ce3H'||right(tot,3)
  120.     up.play=up.play-1 ; signal PLAY
  121. FOURS:
  122.     if gd.play.4~=-1 then do
  123.         tr '36Hc6Your ceFours c6are c9already cbfilled c6in!w1'sp ; signal PLAY1 ; end
  124.     tot=0 ; do k=1 to 5 ; if dice.k=4 then tot=tot+4 ; end k
  125.     se '36Hc6Use cb"ca'||tot||'cb" c6for your ceFoursc6? (caYc6/cbnc6)c9: '
  126.     gc ; a=result ; if a='N' then do ; tr 'cbNo.'sp ; signal PLAY1 ; end
  127.     tr 'caYes'sp ; gd.play.4=tot ; tr 'ce3H'||right(tot,3)
  128.     up.play=up.play-1 ; signal PLAY
  129. FIVES:
  130.     if gd.play.5~=-1 then do
  131.         tr '36Hc6Your ceFives c6are c9already cbfilled c6in!w1'sp ; signal PLAY1 ; end
  132.     tot=0 ; do k=1 to 5 ; if dice.k=5 then tot=tot+5 ; end k
  133.     se '36Hc6Use cb"ca'||tot||'cb" c6for your ceFivesc6? (caYc6/cbnc6)c9: '
  134.     gc ; a=result ; if a='N' then do ; tr 'cbNo.'sp ; signal PLAY1 ; end
  135.     tr 'caYes'sp ; gd.play.5=tot ; tr 'ce3H'||right(tot,3)
  136.     up.play=up.play-1 ; signal PLAY
  137. SIXES:
  138.     if gd.play.6~=-1 then do
  139.         tr '36Hc6Your ceSixes c6are c9already cbfilled c6in!w1'sp ; signal PLAY1 ; end
  140.     tot=0 ; do k=1 to 5 ; if dice.k=6 then tot=tot+6 ; end k
  141.     se '36Hc6Use cb"ca'||tot||'cb" c6for your ceSixesc6? (caYc6/cbnc6)c9: '
  142.     gc ; a=result ; if a='N' then do ; tr 'cbNo.'sp ; signal PLAY1 ; end
  143.     tr 'caYes'sp ; gd.play.6=tot ; tr 'ce3H'||right(tot,3)
  144.     up.play=up.play-1 ; signal PLAY
  145. KIND3:
  146.     if gd.play.7~=-1 then do
  147.         tr '36Hc6Your ce3 of a Kind c6is c9already cbfilled c6in!w1'sp ; signal PLAY1 ; end
  148.     c.=0 ; do k=1 to 5 ; a=dice.k ; c.a=c.a+1 ; end k ; bad=1
  149.     do k=1 to 6 ; if c.k>=3 then bad=0 ; end k ; if bad=1 then do
  150.     tr "36Hc6You don't c9HAVE c6a ce3 of a Kindc6!w1"sp ; end
  151.     tot=0 ; if bad=0 then do k=1 to 5 ; tot=tot+dice.k ; end k
  152.     se '36Hc6Use cb"ca'||tot||'cb" c6for your ce3 of a Kindc6? (caYc6/cbnc6)c9: '
  153.     gc ; a=result ; if a='N' then do ; tr 'cbNo.'sp ; signal PLAY1 ; end
  154.     tr 'caYes'sp ; gd.play.7=tot ; tr 'ce23H'||right(tot,3)
  155.     dn.play=dn.play-1 ; signal PLAY
  156. KIND4:
  157.     if gd.play.8~=-1 then do
  158.         tr '36Hc6Your ce4 of a Kind c6is c9already cbfilled c6in!w1'sp ; signal PLAY1 ; end
  159.     c.=0 ; do k=1 to 5 ; a=dice.k ; c.a=c.a+1 ; end k ; bad=1
  160.     do k=1 to 6 ; if c.k>=4 then bad=0 ; end k ; if bad=1 then do
  161.     tr "36Hc6You don't c9HAVE c6a ce4 of a Kindc6!w1"sp ; end
  162.     tot=0 ; if bad=0 then do k=1 to 5 ; tot=tot+dice.k ; end k
  163.     se '36Hc6Use cb"ca'||tot||'cb" c6for your ce4 of a Kindc6? (caYc6/cbnc6)c9: '
  164.     gc ; a=result ; if a='N' then do ; tr 'cbNo.'sp ; signal PLAY1 ; end
  165.     tr 'caYes'sp ; gd.play.8=tot ; tr 'ce23H'||right(tot,3)
  166.     dn.play=dn.play-1 ; signal PLAY
  167. FULL:
  168.     if gd.play.9~=-1 then do
  169.         tr '36Hc6Your ceFull House c6is c9already cbfilled c6in!w1'sp ; signal PLAY1 ; end
  170.     c.=0 ; do k=1 to 5 ; a=dice.k ; c.a=c.a+1 ; end k ; bad=0 ; do k=1 to 6
  171.     if c.k=2 then bad=bad+1 ; if c.k=3 then bad=bad+2 ; end k ; if bad<3 then do
  172.     tr "36Hc6You don't c9HAVE c6a ceFull Housec6!w1"sp ; end
  173.     if bad>2 then do ; tot=25 ; se '36HcaFill c6in your ceFull House c6now? (caYc6/cbnc6)c9: ' ; end
  174.     else do ; tot=0 ; se '36Hc6Use cb"ca0cb" c6for your ceFull Housec6? (caYc6/cbnc6)c9: ' ; end
  175.     gc ; a=result ; if a='N' then do ; tr 'cbNo.'sp ; signal PLAY1 ; end
  176.     tr 'caYes'sp ; gd.play.9=tot ; tr 'ce23H'||right(tot,3)
  177.     dn.play=dn.play-1 ; signal PLAY
  178. SMSTRT:
  179.     if gd.play.10~=-1 then do
  180.         tr '36Hc6Your ceSm. Straight c6is c9already cbfilled c6in!w1'sp ; signal PLAY1 ; end
  181.     c.=0 ; do k=1 to 5 ; a=dice.k ; c.a=c.a+1 ; end k ; bad=1
  182.     if c.1>0 & c.2>0 & c.3>0 & c.4>0 then bad=0
  183.     if c.2>0 & c.3>0 & c.4>0 & c.5>0 then bad=0
  184.     if c.3>0 & c.4>0 & c.5>0 & c.6>0 then bad=0 ; if bad=1 then do
  185.     tr "36Hc6You don't c9HAVE c6a ceSm. Straightc6!w1"sp ; end
  186.     if bad=0 then do ; tot=30 ; se '36HcaFill c6in your ceSm. Straight c6now? (caYc6/cbnc6)c9: ' ; end
  187.     else do ; tot=0 ; se '36Hc6Use cb"ca0cb" c6for your ceSm. Straightc6? (caYc6/cbnc6)c9: ' ; end
  188.     gc ; a=result ; if a='N' then do ; tr 'cbNo.'sp ; signal PLAY1 ; end
  189.     tr 'caYes'sp ; gd.play.10=tot ; tr 'ce23H'||right(tot,3)
  190.     dn.play=dn.play-1 ; signal PLAY
  191. LGSTRT:
  192.     if gd.play.11~=-1 then do
  193.         tr '36Hc6Your ceLg. Straight c6is c9already cbfilled c6in!w1'sp ; signal PLAY1 ; end
  194.     c.=0 ; do k=1 to 5 ; a=dice.k ; c.a=c.a+1 ; end k ; bad=1
  195.     if c.1=1 & c.2=1 & c.3=1 & c.4=1 & c.5=1 then bad=0
  196.     if c.2=1 & c.3=1 & c.4=1 & c.5=1 & c.6=1 then bad=0 ; if bad=1 then do
  197.     tr "36Hc6You don't c9HAVE c6a ceLg. Straightc6!w1"sp ; end
  198.     if bad=0 then do ; tot=40 ; se '36HcaFill c6in your ceLg. Straight c6now? (caYc6/cbnc6)c9: ' ; end
  199.     else do ; tot=0 ; se '36Hc6Use cb"ca0cb" c6for your ceLg. Straightc6? (caYc6/cbnc6)c9: ' ; end
  200.     gc ; a=result ; if a='N' then do ; tr 'cbNo.'sp ; signal PLAY1 ; end
  201.     tr 'caYes'sp ; gd.play.11=tot ; tr 'ce23H'||right(tot,3)
  202.     dn.play=dn.play-1 ; signal PLAY
  203. YACHT:
  204.     if gd.play.12~=-1 then do
  205.         tr '36Hc6Your cfYACHT-ZEE! c6is c9already cbfilled c6in!w1'sp ; signal PLAY1 ; end
  206.     c.=0 ; do k=1 to 5 ; a=dice.k ; c.a=c.a+1 ; end k ; bad=1
  207.     do k=1 to 6 ; if c.k=5 then bad=0 ; end k ; if bad=1 then do
  208.     tr "36Hc6You don't c9HAVE c6a cfYACHT-ZEEc6!w1"sp ; end
  209.     if bad=0 then do ; tot=50 ; se '36HcaFill c6in your cfYACHT-ZEE! c6now? (caYc6/cbnc6)c9: ' ; end
  210.     else do ; tot=0 ; se '36Hc6Use cb"ca0cb" c6for your cfYACHT-ZEEc6? (caYc6/cbnc6)c9: ' ; end
  211.     gc ; a=result ; if a='N' then do ; tr 'cbNo.'sp ; signal PLAY1 ; end
  212.     tr 'caYes'sp ; gd.play.12=tot ; tr 'ce23H'||right(tot,3)
  213.     dn.play=dn.play-1 ; signal PLAY
  214. CHANCE:
  215.     if gd.play.13~=-1 then do
  216.         tr '36Hc6Your ceChance c6is c9already cbfilled c6in!w1'sp ; signal PLAY1 ; end
  217.     tot=0 ; do k=1 to 5 ; tot=tot+dice.k ; end k
  218.     se '36Hc6Use cb"ca'||tot||'cb" c6for your ceChancec6? (caYc6/cbnc6)c9: '
  219.     gc ; a=result ; if a='N' then do ; tr 'cbNo.'sp ; signal PLAY1 ; end
  220.     tr 'c6Yes'sp ; gd.play.13=tot ; tr 'ce23H'||right(tot,3)
  221.     dn.play=dn.play-1 ; signal PLAY
  222. DONE:
  223.     totG.play=totU.play+totD.play ; tr '23Hcd'right(totG.play,3)
  224.     call CHECKHIGHS ; se '36HcbGame ceOverc9; c6Want to cfPlay cbAgainc6? (caYc6/cbnc6)c9: '
  225.     gc ; a=result ; if a='N' then do ; tr 'cbNo.' ; exit ; end
  226.     tr 'caYes!' ; signal START
  227.  
  228. THROWDICE:
  229.     if randice=1 & throws.play=3 then do ; a=random(1,6) ; b=6-a
  230.         dice=right(dice,a)||left(dice,b) ; end
  231.     se '' ; do i=1 to 5 ; if throw.i=0 then iterate i
  232.         do j=1 to 4 ; dice.i=substr(dice,random(1,6),1)
  233.             col=29+(i*8) ; call DICE ; end j ; end i
  234.     throws.play=throws.play-1 ; tr '69Hc9'||throws.play
  235.     tr '8HcaKEEP!   KEEP!   KEEP!   KEEP!   KEEP!' ; throw.=0
  236.   return
  237.  
  238. HIGHS:
  239.     tr '35H     Yacht-Zee Top Five Highest Scores     '
  240.     tr '35Hcd       'left(hiwho.1'ce',28,'.')'ca'left(hiwhat.1,10)
  241.     tr '35Hc5       'left(hiwho.2'c6',28,'.')'c2'left(hiwhat.2,10)
  242.     tr '35Hcd       'left(hiwho.3'ce',28,'.')'ca'left(hiwhat.3,10)
  243.     tr '35Hc5       'left(hiwho.4'c6',28,'.')'c2'left(hiwhat.4,10)
  244.     tr '35Hcd       'left(hiwho.5'ce',28,'.')'ca'left(hiwhat.5,10)
  245.     se '36Hc6Press cfENTER c6to continue...i1'sp
  246.     tr '35H      Menu of Available Play Commands      '
  247.     tr '34H│C1-Toggle KEEP!/THROW Status.C│'
  248.     tr '34H│<CR> or Throw/ReThrow the Dice.C│'
  249.     tr '34H│CA-Place Throw On Score Card.C│'
  250.     tr '34H│ ESC or Quit & Forfeit Game Now.C│'
  251.     tr '34H│C V View Top 5 Highest Scores.C│'
  252.   signal PLAY1
  253.  
  254. READHIGHS:
  255.     if ~exists('pfiles:single/Yacht-Zee.Highs') then do
  256.         call open(f1,'pfiles:single/Yacht-Zee.Highs','w')
  257.             do i=1 to 5 ; call writeln(f1,'No One Yet|0|x') ; end i
  258.         call close(f1) ; end
  259.     call open(f1,'pfiles:single/Yacht-Zee.Highs','r') ; do i=1 to 5
  260.         hi.i=readln(f1) ; parse var hi.i hiwho.i'|'hiwhat.i'|'junk ; end i
  261.     call close(f1)
  262.   return
  263.  
  264. CHECKHIGHS:
  265.     if totG.play>hiwhat.5 then do ; hiwhat.5=totG.play ; hiwho.5=handle
  266.         se '36Hc6A cbNEW ceHigh Scorec6...' ; do i=1 to 4
  267.         if hiwhat.5>hiwhat.i then do
  268.             ts=hiwhat.i ; th=hiwho.i ; hiwhat.i=hiwhat.5 ; hiwho.i=hiwho.5
  269.             hiwhat.5=ts ; hiwho.5=th ; end ; end i ; end
  270.     se 'w1cbSaving...' ; call open(f1,'pfiles:single/Yacht-Zee.Highs','w')
  271.     do i=1 to 5 ; call writeln(f1,hiwho.i'|'hiwhat.i'|x') ; end i
  272.     call close(f1) ; tr 'w1'sp
  273.   return
  274.  
  275. DICE:
  276.     if throw.i=0 then return
  277.     lab='DICE'||dice.i ; signal (lab)
  278. DICE1:
  279.     tr ''||col||'H███████' ; tr ''||col||'H███▀███'
  280.     tr ''||col||'H███████' ; tr ''||col||'H▀▀▀▀▀▀▀'
  281.   return
  282. DICE2:
  283.     tr ''||col||'H█▀█████' ; tr ''||col||'H███████'
  284.     tr ''||col||'H█████▀█' ; tr ''||col||'H▀▀▀▀▀▀▀'
  285.   return
  286. DICE3:
  287.     tr ''||col||'H█▀█████' ; tr ''||col||'H███▀███'
  288.     tr ''||col||'H█████▀█' ; tr ''||col||'H▀▀▀▀▀▀▀'
  289.   return
  290. DICE4:
  291.     tr ''||col||'H█▀███▀█' ; tr ''||col||'H███████'
  292.     tr ''||col||'H█▀███▀█' ; tr ''||col||'H▀▀▀▀▀▀▀'
  293.   return
  294. DICE5:
  295.     tr ''||col||'H█▀███▀█' ; tr ''||col||'H███▀███'
  296.     tr ''||col||'H█▀███▀█' ; tr ''||col||'H▀▀▀▀▀▀▀'
  297.   return
  298. DICE6:
  299.     tr ''||col||'H█▀███▀█' ; tr ''||col||'H█▀███▀█'
  300.     tr ''||col||'H█▀███▀█' ; tr ''||col||'H▀▀▀▀▀▀▀'
  301.   return
  302.  
  303. SCREEN:
  304.     tr 'f1@4┌────────────────────┬───┬───┬───┬───────────────────────────────────────────┐'
  305.     tr '│   Yacht-Zee v1.1   -1--2--3-│   Written by Dotoran of Frontiers BBS!    │'
  306.     tr '├──────────────────┬─┼───┼───┼───┼───────────────────────────────────────────┤'
  307.     tr '│    Aces (Need  3)A│   │   │   │  █▀███▀█ █▀███▀█ █▀███▀█ █▀███▀█ █▀███▀█  │'
  308.     tr '│    Twos (Need  6)B│   │   │   │  ███▀███ ███▀███ ███▀███ ███▀███ ███▀███  │'
  309.     tr '│  Threes (Need  9)C│   │   │   │  █▀███▀█ █▀███▀█ █▀███▀█ █▀███▀█ █▀███▀█  │'
  310.     tr '│   Fours (Need 12)D│   │   │   │  ▀▀▀▀▀▀▀ ▀▀▀▀▀▀▀ ▀▀▀▀▀▀▀ ▀▀▀▀▀▀▀ ▀▀▀▀▀▀▀  │'
  311.     tr '│   Fives (Need 15)E│   │   │   │    -1-C-2-C-3-C-4-C-5-    │'
  312.     tr '│   Sixes (Need 18)F│   │   │   │   KEEP!   KEEP!   KEEP!   KEEP!   KEEP!   │'
  313.     tr '├──────────────────┴─┼───┼───┼───┼───────────────────────────────────────────┤'
  314.     tr '│   Upper Card Total │   │   │   │ Which Player:C│'
  315.     tr '│ Bonus if Total >63 │   │   │   │ Play Command:C│'
  316.     tr '╞══════════════════╤═╪═══╪═══╪═══╪═══════════════════════════════════════════╡'
  317.     tr '│  3 of a Kind (??)G│   │   │   │      Menu of Available Play Commands      │'
  318.     tr '│  4 of a Kind (??)H│   │   │   │C│'
  319.     tr '│   Full House (25)I│   │   │   │C1-Toggle KEEP!/THROW Status.C│'
  320.     tr '│ Sm. Straight (30)J│   │   │   │<CR> or Throw/ReThrow the Dice.C│'
  321.     tr '│ Lg. Straight (40)K│   │   │   │CA-Place Throw On Score Card.C│'
  322.     tr '│    YACHT-ZEE (50)L│   │   │   │ ESC or Quit & Forfeit Game Now.C│'
  323.     tr '│CChance (??)M│   │   │   │CView Top 5 Highest Scores.C│'
  324.     tr '├──────────────────┴─┼───┼───┼───┼───────────────────────────────────────────┤'
  325.     tr '│   Lower Card Total │   │   │   │ Number of Dice Throws Remaining:C│'
  326.     tr '│   GAME GRAND TOTAL │   │   │   │C│'
  327.     tr '└────────────────────┴───┴───┴───┴───────────────────────────────────────────┘H'
  328.   return
  329.  
  330. DOCS:
  331.     tr "f1@4┌────────────────────┬───┬───┬───┬───────────────────────────────────────────┐"
  332.     tr "│   Yacht-Zee v1.1   -1--2--3-│   Written by Dotoran of Frontiers BBS!    │"
  333.     tr "├────────────────────┴───┴───┴───┴───────────────────────────────────────────┤"
  334.     tr "│ Given dice, roll any combination of these dice as many as times, while │"
  335.     tr "│ trying to fill in your Score Card to give you the Highest Score possible.  │"
  336.     tr "│C│"
  337.     tr "│ On your Score Card, try to Roll the following:C│"
  338.     tr "│C│"
  339.     tr "│CAcesAny number of 1's from to 5.  (Need 3  for 35 pt. BONUS)   │"
  340.     tr "│CTwosAny number of 2's from to 10(Need 6  for 35 pt. BONUS)   │"
  341.     tr "│CThreesAny number of 3's from to 15(Need 9  for 35 pt. BONUS)   │"
  342.     tr "│CFoursAny number of 4's from to 20(Need 12 for 35 pt. BONUS)   │"
  343.     tr "│CFivesAny number of 5's from to 25(Need 15 for 35 pt. BONUS)   │"
  344.     tr "│CSixesAny number of 6's from to 30(Need 18 for 35 pt. BONUS)   │"
  345.     tr "│  3 of a Kind(or moredice showing the SAME Number. (Score ALL Dice)   │"
  346.     tr "│  4 of a Kind(or moredice showing the SAME Number. (Score ALL Dice)   │"
  347.     tr "│   Full Housedice of ONE Number, dice of ANOTHER Number.  (Score 25)  │"
  348.     se "│ Sm. StraightEither 1-2-3-42-3-4-5, or 3-4-5-6 "
  349.     tr "on dice.   (Score 30)  │"
  350.     se "│ Lg. StraightEither 1-2-3-4-or 2-3-4-5-showing on 5 "
  351.     tr "dice. (Score 40)  │"
  352.     tr "│   YACHT-ZEE!ALL FIVE(5DICE SHOWING THE SAME NUMBER!C(Score 50)  │"
  353.     tr "│CChanceIf you can use your Throw NO WHERE ELSE -- (ADD ALL 5 DICE)  │"
  354.     tr "│C│"
  355.     tr "│ Multiple Yacht-Zee!'s are not supported yet!  Can YOU make the Top List│"
  356.     se "└─────────────────────────────tapenterwhenready───────────────────────────┘i1"
  357.     call SCREEN
  358.   signal PLAY
  359.  
  360. QUIT:
  361.     se '36Hc6You careally c6want to cdQuitc6?  (cayc6/cbNc6)c9: '
  362.     gc ; a=result ; if a='Y' then do ; tr 'caYes!' ; exit ; end ; else tr 'cbNo.'sp
  363.   signal PLAY1
  364.  
  365. CHECK:
  366.     if result~='###PANIC' then return
  367.     tr 'f1n9ccYacht-Zee!n2c9Loss of Carrier!'
  368.     logentry 'No Carrier in Yacht-Zee!' ; bufferflush
  369.   exit
  370.  
  371. SYNTAX:;ERROR:;IOERR:;e1=' Error: 'rc' ('errortext(rc)')'
  372.   e2='  Line: 'left(sigl,4)'File:';gu 1311992;a=result;gu 1311960;b=result;c='"'a||b'"';e2=e2' 'c;tr e1;tr e2;logentry e1;logentry e2
  373.   e=sourceline(sigl);do while e~='';e3='Source: 'left(e,37);tr e3;logentry e3;e=substr(e,38);end;bufferflush;exit
  374. /** Last Edited: 7-Oct-95 *************************************************\
  375. \****************************************** Frontiers BBS (716)/823-9892 **/
  376.